xi2: Don't set button mask 4 and 5
authorMatthias Clasen <mclasen@redhat.com>
Sat, 2 May 2015 15:51:38 +0000 (11:51 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 2 May 2015 15:55:57 +0000 (11:55 -0400)
We interpret buttons 4-7 as old-school scroll events, so it does
not make sense to add these to the mask. Also fix an off-by-one
in the loop here, buttons_mask is 1-based.

gdk/x11/gdkdevice-xi2.c

index fad867112013fc7996a5aa93480aba319680fb46..66c3a31fa2d56a2081670ad649a8cf4b5ed1c83f 100644 (file)
@@ -762,10 +762,10 @@ _gdk_x11_device_xi2_translate_state (XIModifierState *mods_state,
     {
       gint len, i;
 
-      /* We're only interested in the first 5 buttons */
-      len = MIN (5, buttons_state->mask_len * 8);
+      /* We're only interested in the first 3 buttons */
+      len = MIN (3, buttons_state->mask_len * 8);
 
-      for (i = 0; i < len; i++)
+      for (i = 1; i <= len; i++)
         {
           if (!XIMaskIsSet (buttons_state->mask, i))
             continue;
@@ -781,12 +781,6 @@ _gdk_x11_device_xi2_translate_state (XIModifierState *mods_state,
             case 3:
               state |= GDK_BUTTON3_MASK;
               break;
-            case 4:
-              state |= GDK_BUTTON4_MASK;
-              break;
-            case 5:
-              state |= GDK_BUTTON5_MASK;
-              break;
             default:
               break;
             }